/**
 * 简化的路由守卫系统
 * 
 * 应用启动时验证token有效性：
 * 1. 从本地存储读取用户信息（store会自动初始化）
 * 2. 验证token是否有效
 * 3. 无效或无token则跳转登录页
 */

import { useGlobalStore } from '@/store/app'
import { createRequest } from '@/utils/request'

/**
 * 验证token有效性
 * @returns {Promise<boolean>} token是否有效
 */
export const validateToken = async (): Promise<boolean> => {
  const store = useGlobalStore()
  const token = store.userInfo.token
  
  if (!token) {
    return false
  }
  
  try {
    await createRequest('/user/info/lite')
    return true
  } catch (error) {
    return false
  }
}

/**
 * 应用启动时的全局权限验证
 */
export const useAppGuard = async () => {
  const store = useGlobalStore()
  
  // 检查是否有token
  if (!store.userInfo.token) {
    uni.reLaunch({
      url: '/pages/login'
    })
    return
  }
  
  // 验证token有效性
  const isTokenValid = await validateToken()
  if (!isTokenValid) {
    store.clearUserInfo()
    uni.reLaunch({
      url: '/pages/login'
    })
    return
  }
} 